hysop.symbolic.array module

class hysop.symbolic.array.HostSymbolicArray(memory_object, name, dim=None, **kwds)[source]

Bases: SymbolicHostMemoryObject, SymbolicArray

default_assumptions = {}
dummy_index
class hysop.symbolic.array.HostSymbolicBuffer(memory_object, name, **kwds)[source]

Bases: SymbolicHostMemoryObject, SymbolicBuffer

default_assumptions = {}
dummy_index
class hysop.symbolic.array.HostSymbolicNdBuffer(name, memory_object=None, dim=None, strides=None, dtype=None, ghosts=None, **kwds)[source]

Bases: SymbolicHostMemoryObject, SymbolicNdBuffer

default_assumptions = {}
dummy_index
class hysop.symbolic.array.IndexedBuffer(base, *args, **kw_args)[source]

Bases: Indexed

Tag for indexed SymbolicBuffers.

property ctype
default_assumptions = {}
property index
property indexed_object
class hysop.symbolic.array.OpenClSymbolicArray(memory_object, name, dim=None, **kwds)[source]

Bases: SymbolicDeviceMemoryObject, SymbolicArray

default_assumptions = {}
dummy_index
class hysop.symbolic.array.OpenClSymbolicBuffer(memory_object, name, **kwds)[source]

Bases: SymbolicDeviceMemoryObject, SymbolicBuffer

default_assumptions = {}
dummy_index
class hysop.symbolic.array.OpenClSymbolicNdBuffer(name, memory_object=None, dim=None, strides=None, dtype=None, ghosts=None, **kwds)[source]

Bases: SymbolicDeviceMemoryObject, SymbolicNdBuffer

default_assumptions = {}
dummy_index
class hysop.symbolic.array.SymbolicArray(memory_object, name, dim=None, **kwds)[source]

Bases: SymbolicMemoryObject

An array is considered to be indexed by local indices in autogenerated vectorized code (in symbolic code generation framework).

Symbols are identified by name and assumptions:

>>> from sympy import Symbol
>>> Symbol("x") == Symbol("x")

True >>> Symbol(“x”, real=True) == Symbol(“x”, real=False) False

class ArrayRequirements(sarray)[source]

Bases: object

update_requirements(other)[source]
property array
default_assumptions = {}
property dim
dummy_index
new_requirements()[source]
to_backend(backend)[source]
class hysop.symbolic.array.SymbolicBuffer(memory_object, name, **kwds)[source]

Bases: SymbolicMemoryObject

A buffer will not be indexed by local indices by default. The user has to index a SymbolicBuffer so that it can be used for code generation.

Symbols are identified by name and assumptions:

>>> from sympy import Symbol
>>> Symbol("x") == Symbol("x")

True >>> Symbol(“x”, real=True) == Symbol(“x”, real=False) False

property buffer
default_assumptions = {}
dummy_index
to_backend(backend)[source]
class hysop.symbolic.array.SymbolicDeviceMemoryObject[source]

Bases: object

property base_data
bind_memory_object(memory_object, **kwds)[source]
property offset
class hysop.symbolic.array.SymbolicHostMemoryObject[source]

Bases: object

bind_memory_object(memory_object, **kwds)[source]
class hysop.symbolic.array.SymbolicMemoryObject(memory_object, name, **kwds)[source]

Bases: DummySymbolicScalar

Symbols are identified by name and assumptions:

>>> from sympy import Symbol
>>> Symbol("x") == Symbol("x")

True >>> Symbol(“x”, real=True) == Symbol(“x”, real=False) False

assert_bound()[source]
abstract bind_memory_object(memory_object, force=False)[source]
property ctype
default_assumptions = {}
property dim
property dtype
dummy_index
property is_bound
property memory_object
property shape
short_description()[source]
property size
property strides
class hysop.symbolic.array.SymbolicNdBuffer(name, memory_object=None, dim=None, strides=None, dtype=None, ghosts=None, **kwds)[source]

Bases: SymbolicBuffer

Same as a SymbolicBuffer, but with ndindex access and ghost support.

Symbols are identified by name and assumptions:

>>> from sympy import Symbol
>>> Symbol("x") == Symbol("x")

True >>> Symbol(“x”, real=True) == Symbol(“x”, real=False) False

bind_memory_object(memory_object, strides=None, dtype=None, ghosts=None, force=False, **kwds)[source]
default_assumptions = {}
property dim
dummy_index
property symbolic_ghosts
property symbolic_strides
update_symbolic_constants(memory_object, strides, dtype, ghosts, force)[source]